#ifndef DATALINE_H
#define DATALINE_H

#include <QWidget>
#include <QVector>
#include <QDateTime>
#include <QSqlQuery>
#include <QSqlError>
#include <QSqlDatabase>
#include <QSharedPointer>
#include "qcustomplot.h"

namespace Ui {
class DataLine;
}

class DataLine : public QWidget
{
    Q_OBJECT

public:
    static DataLine* instance(QWidget *parent = nullptr);  // 获取唯一实例
    ~DataLine();

    void updateData();  // 更新数据

private slots:
    void on_pushButton_pressed();

private:
    explicit DataLine(QWidget *parent = nullptr);  // 构造函数私有化，禁止直接实例化

    void setupGraph();  // 设置图表
    void fetchData();  // 获取数据
    void toggleGraphVisibility();  // 控制图表可见性
    void connectToDatabase();  // 数据库连接

    static DataLine* m_instance;  // 静态实例

    QVector<double> x, current, voltage, power;
    int dataSize;

    Ui::DataLine *ui;

    // 禁止拷贝构造和赋值操作符
    DataLine(const DataLine&) = delete;
    DataLine& operator=(const DataLine&) = delete;
};

#endif // DATALINE_H
